package ltd.hanamaki.review.jdbc.util;

import java.io.*;
import java.sql.*;
import java.util.Properties;

/**
 * 工具类
 */
public class JDBCUtils_1 {

    static FileInputStream fileInputStream;
    static String url;
    static String userName;
    static String passWord;
    static String driver;
    static Connection connection;

    /* 编写 一个 获取数据库连接信息的 方法 */
    static {
        Properties properties = new Properties();
        try {
            /* 加载文件的位置 */
            InputStream inputStream = JDBCUtils_1.class.getClassLoader().getResourceAsStream("test.ini");
            /* 将文件中的 信息 通过  Properties 类 中的  load方法 加载进来 */
            properties.load(inputStream);
        } catch (Exception e) {
            e.printStackTrace();
        }

        /* 取出配置类中 所存储的  数据库连接的信息 */
        url = properties.getProperty("url");
        userName = properties.getProperty("username");
        passWord = properties.getProperty("password");
        driver = properties.getProperty("driver");
    }

    /* 编写 数据库连接 的方法 */
    public static Connection getCon() {
        /* 注册 驱动  */
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            System.out.println("类加载异常！");
        }
        try {
            connection = DriverManager.getConnection(url, userName, passWord);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return connection;
    }

    /* 释放资源 */
    public static void release(Connection connection, Statement statement, ResultSet resultSet, PreparedStatement preparedStatement) {
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException throwables) {
                System.out.println("sql异常");
            }
        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException throwables) {
                System.out.println("sql异常");
            }
        }
        if (resultSet != null) {
            try {
                resultSet.close();
            } catch (SQLException throwables) {
                System.out.println("sql异常");
            }
        }
        if (preparedStatement != null) {
            try {
                preparedStatement.close();
            } catch (SQLException throwables) {
                System.out.println("sql异常");
            }
        }

    }


}
